输入n(0<n《10)个整数,按逆序输出

来源:百度知道 编辑:UC知道 时间:2024/06/19 08:35:30
#include<stdio.h>
void main()
{
int n,i,k,temp;
int a[10];
printf("Enter n:");
scanf("%d",&n);
printf("Enter %d numbers:",n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
if(n%2==0){
for(k=0;k<(n/2);k++)
temp=a[k];
a[k]=a[n-1-k];
a[n-1-k]=temp;}
else {
for(k=0;k<(n-1)/2;k++)
temp=a[k];
a[k]=a[n-1-k];
a[n-1-k]=temp;}
printf("After reverse:",n);
for(i=0;i<n;i++)
printf("%d",a[i]);
printf("\n");
}

觉得对,不知道错在哪
最好用数组的,因为c语言学的还不多

你的两个for循环都没有用大括号括起来~~~呵呵~~

简单就用数组 然后反序列输出
科学就使用栈

用简单吧
---------------------------
#include<stdio.h>
#include<stdlib.h>
main()
{
int * x;
int temp=0,i,j;

for(;;)
{
scanf("%d",&temp);
if(temp>11 || temp<0) {printf("只能是0<n<11");continue;}
else break;
}
x=malloc(sizeof(int)*temp);

for(i=0;i<temp;i++)
{
scanf("%d",x+i);
}

for(j=temp-1;j>=0;j--)
printf("%d\n",*(x+j));
}

您的意思是这样吗?

#include<stdio.h>
void main()
{
int n,i,k,temp;
int a[10];
printf("Enter n:");
scanf("%d",&n);
printf("Enter %d numbers:",n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
printf("After reverse:");
for(i=n-1;i>0;i--)
printf("%d ",